﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using CapaNegocio;

public partial class abmObra_ConsultarHojaRuta : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

         if (!IsPostBack)
        {
            if (Session["UsuLogin"] == null)
                Response.Redirect("../Default.aspx", true);
            else
            {
                Usuario usu = ((Usuario)(Session["UsuLogin"]));
                Label1.Text = usu.Apellido + ", " + usu.Nombre + " (" + usu.Perfil.Nombre + ")";

                Constructor c = Constructor.buscarConstructor(usu.TipoDoc.Codigo,usu.NroDoc);

                List<Asignacion> asignaciones = Asignacion.buscarAsignacionesEnCurso(c.Codigo);
                refreshGrid(asignaciones);

                cantObras.Text = asignaciones.Count>0?Convert.ToString(asignaciones.Count):"No tiene obras asignadas";  

            }
        }

    }


    private void refreshGrid(List<Asignacion> asignaciones)
    {

        DataTable dt = new DataTable();
        dt.Columns.Add("nroOT");
        dt.Columns.Add("fechaInicio");
        dt.Columns.Add("fechaFinalizacion");
        dt.Columns.Add("etapa");
        dt.Columns.Add("lugar");
        dt.Columns.Add("cliente");
        DataRow dr;

        for (int i = 0; i < asignaciones.Count; i++)
        {
            Asignacion asig = (Asignacion)asignaciones[i];
            dr = dt.NewRow();
            dr["nroOT"] = asig.OrdenTrabajo.Codigo;
            dr["fechaInicio"] = asig.OrdenTrabajo.FechaComienzo.ToShortDateString();
            dr["fechaFinalizacion"] = asig.OrdenTrabajo.fechaFin();
            dr["etapa"] = asig.OrdenTrabajo.buscarEtapaActualReal().Etapa.Descripcion;
            dr["lugar"] = asig.OrdenTrabajo.Presupuesto.Piscina.Figuracion;
            dr["cliente"] = asig.OrdenTrabajo.Cliente.Figuracion;
            dt.Rows.Add(dr);
        }
        grdAsignaciones.DataSource = dt;
        grdAsignaciones.DataBind();
    }


    protected void botonAceptar_Click(object sender, EventArgs e)
    {
        Response.Redirect("../MenuConstructor.aspx");
    }


    protected void grdAsignaciones_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        grdAsignaciones.PageIndex = e.NewPageIndex;
        grdAsignaciones.DataBind();
    }

    protected void grdAsignaciones_Sorting(object sender, GridViewSortEventArgs e)
    {
        DataTable dataTable = (DataTable)grdAsignaciones.DataSource;

        if (dataTable != null)
        {
            DataView dataView = new DataView(dataTable);
            dataView.Sort = e.SortExpression + " " + GetSortDirection(e.SortExpression);

            grdAsignaciones.DataSource = dataView;
            grdAsignaciones.DataBind();
        }
    }

    public string SortExpression
    {
        get { return (ViewState["SortExpression"] == null ? string.Empty : ViewState["SortExpression"].ToString()); }
        set { ViewState["SortExpression"] = value; }
    }
    public string SortDirection
    {
        get { return (ViewState["SortDirection"] == null ? string.Empty : ViewState["SortDirection"].ToString()); }
        set { ViewState["SortDirection"] = value; }
    }
    private string GetSortDirection(string sortExpression)
    {
        if (SortExpression == sortExpression)
        {
            if (SortDirection == "ASC")
                SortDirection = "DESC";
            else if (SortDirection == "DESC")
                SortDirection = "ASC";
            return SortDirection;
        }
        else
        {
            SortExpression = sortExpression;
            SortDirection = "ASC";
            return SortDirection;
        }
    }

    protected void botonImprimir_Click(object sender, EventArgs e)
    {

    }
}